package edu.eam.proyectodesarrollojpa.entidades;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
 * The persistent class for the PROGRAMA database table.
 * 
 */
@Entity
@Table(name = "HISTORIAL_INTEGRANTE")
public class HistorialIntegrante implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(allocationSize = 1, name = "HISTORIAL_INTEGRANTE_IDHISTORIALINTEGRANTE_GENERATOR", sequenceName = "SEC_HISTORIAL_INTEGRANTE")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "HISTORIAL_INTEGRANTE_IDHISTORIALINTEGRANTE_GENERATOR")
	@Column(name = "IDHISTORIALINTEGRANTE")
	private Long idHistorial;
	
	// uni-directional many-to-one association to TipoAlternativaInversion
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "INTEGRANTE_HISTORIAL")
	private Integrantes integrante;
	
    @Temporal( TemporalType.TIMESTAMP)
	@Column(name = "FECHA_HISTORIAL")
	private Date fechaHistorial;
    
    @Column(name = "TIPO_HISTORIAL")
	@Enumerated(value = EnumType.STRING)
    private TipoHistorialEnum tipoHistorial;

	public HistorialIntegrante() {
	}

	/**
	 * Metodo encargado de retornar el valor del atributo idHistorial
	 * @return El idHistorial asociado a la clase
	 */
	public Long getIdHistorial() {
		return idHistorial;
	}

	/**
	 * Metodo encargado de modificar el valor del atributo idHistorial
	 * @param idHistorial El nuevo idHistorial a modificar.
	 */
	public void setIdHistorial(Long idHistorial) {
		this.idHistorial = idHistorial;
	}

	/**
	 * Metodo encargado de retornar el valor del atributo integrante
	 * @return El integrante asociado a la clase
	 */
	public Integrantes getIntegrante() {
		return integrante;
	}

	/**
	 * Metodo encargado de modificar el valor del atributo integrante
	 * @param integrante El nuevo integrante a modificar.
	 */
	public void setIntegrante(Integrantes integrante) {
		this.integrante = integrante;
	}

	/**
	 * Metodo encargado de retornar el valor del atributo fechaHistorial
	 * @return El fechaHistorial asociado a la clase
	 */
	public Date getFechaHistorial() {
		return fechaHistorial;
	}

	/**
	 * Metodo encargado de modificar el valor del atributo fechaHistorial
	 * @param fechaHistorial El nuevo fechaHistorial a modificar.
	 */
	public void setFechaHistorial(Date fechaHistorial) {
		this.fechaHistorial = fechaHistorial;
	}

	/**
	 * Metodo encargado de retornar el valor del atributo tipoHistorial
	 * @return El tipoHistorial asociado a la clase
	 */
	public TipoHistorialEnum getTipoHistorial() {
		return tipoHistorial;
	}

	/**
	 * Metodo encargado de modificar el valor del atributo tipoHistorial
	 * @param tipoHistorial El nuevo tipoHistorial a modificar.
	 */
	public void setTipoHistorial(TipoHistorialEnum tipoHistorial) {
		this.tipoHistorial = tipoHistorial;
	}

	

}